/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : mardi 08 novembre 2011 à 17 : 44.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : lecturefichier.h
* Chemin du fichier : src/classes/lecturefichier/lecturefichier.h
* 
* Description : Classe d'implementation de lecture du fichier.
* 			Implemente un pipeline de lecture via les libraries tbb.
* 
*/

#include "tbb/pipeline.h"
#include "tbb/task.h"
#include <iostream>
#include <fstream>
#include "../readline/readline.h"
#include "../filtrelectureligne/filtrelectureligne.h"
#include "../filtreconverttoint/filtreconverttoint.h"
#include "../../generic/typedefs.h"
#include "../threadprincipal/threadprincipal.h"

#ifndef LECTURE_FICHIER_H_INCLUDED
#define LECTURE_FICHIER_H_INCLUDED

class lectureFichier  {

public :
	lectureFichier();
	lectureFichier(char* filepath, size_t p_nbJetons, threadPrincipal *p_threadPrincipal);

	~lectureFichier();

	int launchPipeline();
	int clearPipeline();
	int makeAndRunPipeline();

private :
	threadPrincipal *thread;
	tableauSommePrefixe *tableau;
	readLine *reader;
	std::string ligneLue;
	tbb::pipeline pipelineLecture;
	size_t nbJetons;
	filtreLectureLigne *filtreLecture;
	filtreConvertToInt *filtreConversion;

	int makePipeline();
};

#endif
